package controladores;

import java.util.Calendar;
import java.util.List;
import javax.swing.table.TableModel;
import ventanas.VentanaAgenda;

public class ControladorCalendario implements DateListener{
	
	private VentanaAgenda v;
	private Sistema s;
	
	public ControladorCalendario(VentanaAgenda ventana){
		this.v = ventana;
		this.s = Sistema.obtenerInstancia();
	}

	@Override
	public void dateChanged(DateEvent e) {
		this.cargarDatosEnTabla(e.getSelectedDate());	
	}

	public void cargarDatosEnTabla(Calendar fecha){
		List<Turno> turnos = s.obtenerTurnosEnFecha((Medico)v.getCombo().getModel().getSelectedItem(), fecha);
		TableModel modelo = v.getTabla().getModel();
		int i = 0;
		
		for(int j=0; j<modelo.getRowCount(); j++){
			modelo.setValueAt("", j, 0);
			modelo.setValueAt("", j, 1);
			modelo.setValueAt("", j, 2);
			modelo.setValueAt("", j, 3);
			modelo.setValueAt("", j, 4);
			modelo.setValueAt("", j, 5);
		}
		
		if(!turnos.isEmpty()){
			for(Turno t:turnos){
				modelo.setValueAt(t==null? "" :t.obtenerHorario(), i, 0);
				modelo.setValueAt(t==null? "" :t.getEstado(), i, 1);
				modelo.setValueAt((t==null || t.getPaciente()==null)? "" :t.getPaciente().getNombre(), i, 2);
				modelo.setValueAt((t==null || t.getPaciente()==null)? "" :t.getPaciente().getApellido(), i, 3);
				modelo.setValueAt((t==null || t.getPaciente()==null)? "" :t.getPaciente().getTelefono(), i, 4);
				modelo.setValueAt((t==null || t.getPaciente()==null)? "" :t.getPaciente().getObraSocial(), i, 5);
				i++;
			}
		}
		v.getTabla().setModel(modelo);
		v.getTabla().revalidate();	
	}
	
}
